10 REM C128 AUTOBOOT DISK MAKER 15 MO=0:PRINT"[147]":IFPEEK(215)<>0THEN MO=5:GOTO500 20 (null)1,1:(null)0,6:(null)4,6 30 (null)1,1 40 (null)"AUTO.PIC" TO "AUTO.PIC" 50 E$=LEFT$(DS$,2) 60 IFE$<>"63"THENGOSUB620:(null) (null)"AUTO.COL",D0:(null)"AUTO.PIC",D0 70 CLR:GOTO500 80 REM INSERT DISK 90 S1$=" INSERT DISK TO AUTOBOOT" 100 S2$="PRESS SPACEBAR WHEN READY.":GOSUB820 110 (null):GET(null) A$:(null) (null) A$=" ":GOSUB850 120 RETURN 130 REM CHECK TRACK 1 SECTOR 0 FOR DATA ALREADY THERE 140 OPEN1,8,15:OPEN2,8,2,"#":GOSUB480 150 PRINT#1,"U1:";2;0;1;0 160 GET#2,A$:GET#2,B$:IFASC(A$+CHR$(0))<>0ORASC(B$+CHR$(0))<>0THEN GOSUB190 170 CLOSE2:CLOSE1:RETURN 180 REM REWRITE AUTO BOOT (Y/N) 190 S1$="ALREADY AN AUTOBOOT DISK!" 200 S2$="SHOULD I CONTINUE? (Y/N)":GOSUB820 210 GET(null) A$ 220 IFA$="Y"THEN GF=1:GOSUB850:RETURN 230 IFA$="N"THEN GOSUB 850:(null)1,7,6," PROGRAM STOPPED",1:CLOSE2:CLOSE1:(null) 5:(null) MO,1:(null)5,14:END:(null) GOTO210 240 REM WRITE TRACK 1, SECTOR 0. 250 S1$=" ENTER BOOTUP MESSAGE":S2$="":GOSUB820 260 DN$="":GOSUB890:DN$=W$ 270 GOSUB850:S1$="ARE YOU BOOTING A BASIC OR" 280 S2$=" ML PROGRAM (B/M) ":GOSUB820 290 GET(null) A$ 300 IF A$="B" OR A$="[194]" THEN ML=0:GOSUB850:GOTO 320 310 IF A$="M" OR A$="[205]" THEN ML=1:GOSUB850:(null) GOTO290 320 GOSUB850:S1$=" PROGRAM TO AUTO BOOT?":S2$="":GOSUB820 330 NM$="":GOSUB890:NM$=W$:IFLEN(NM$)=0THEN330 340 GOSUB850:(null)1,7,6,"WRITING AUTO BOOT...",1 350 ML$="CBM"+CHR$(0)+CHR$(0)+CHR$(0)+CHR$(0)+DN$+CHR$(0)+CHR$(0)+CHR$(162) 360 AD=2816+LEN(DN$)+15 370 ML$=ML$+CHR$(ADAND255)+CHR$(160)+CHR$(AD/256)+CHR$(76)+CHR$(165) 380 ML$=ML$+CHR$(175) 390 IF ML=0 THEN ML$=ML$+"RUN" 400 IF ML=1 THEN ML$=ML$+"BOOT" 410 ML$=ML$+CHR$(34)+NM$+CHR$(0) 420 OPEN1,8,15:OPEN2,8,2,"#":GOSUB480 430 PRINT#1,"B-P:";2;0 440 PRINT#2,ML$; 450 PRINT#1,"U2:";2;0;1;0:GOSUB480 460 CLOSE2:CLOSE1:RETURN 470 REM READ ERROR CHANNEL 480 IFDS>1THEN(null) MO,1:PRINTDS$:CLOSE2:CLOSE1:END 490 RETURN 500 REM MAIN BODY 510 GF=0 520 (null)1,7:S1$=" C128 AUTO BOOT MAKER" 530 S2$=" BY D DARUS & L WALLACE":GOSUB820:(null) 5 540 GOSUB80:REM INSERT DISK 550 GOSUB140:REM CHECK TRACK 1 SECTOR 0 FOR DATA ALREADY THERE. 560 GOSUB250:REM WRITE TRACK 1, SECTOR 0. 570 IFGF=1THEN610 580 OPEN1,8,15:FORT=0TO20:PRINT#1,"B-A:" 0;1;T:NEXT 590 IFDS=65THENGOSUB190:GOTO610 600 IFDS>0THENPRINTDS$ 610 CLOSE1:S1$="ALL DONE!":S2$="PRESS ANY KEY TO END":GOSUB850:GOSUB820:GET(null) A$:(null) MO,1:(null)5,14:END 620 (null)%:(null)1,1:(null)1,3 630 (null)1,13,2,"AUTODISK MAKER" 640 (null)1,1 650 (null)1,40,32,280,186 660 (null)1,160,105,32,25 670 (null)1,160,150,8,5,270,90 680 (null)1,152,150 TO 152,170 690 (null)1,168,150 TO 168,170 700 (null)1,160,170,8,5,90,270 710 (null)1,195,125,5,4 720 (null)1,276,63,280,70 730 (null)0,280,64 TO 280,69 740 (null)1,7 750 (null)1,56,40,264,71,,1 760 (null)1,1 770 (null)1,45,40 780 (null)& 790 (null)"AUTO.PIC",B0,D0,P8192 TO P16191 800 (null)"AUTO.COL",B0,D0,P7168 TO P8191 810 RETURN 820 (null)1,7,5,S1$,1 830 (null)1,7,7,S2$,1 840 RETURN 850 (null)1,7:(null)1,7,5," ",1: REM 27 SPACES 860 (null)1,7,6," ",1: REM 27 SPACES 870 (null)1,7,7," ",1: REM 27 SPACES 880 RETURN 890 CT=0:XP=7:TX$="":W$="" 900 GET(null) TX$ 910 A=ASC(TX$) 920 IFA=13THENRETURN 930 IFA=20ANDLEN(W$)>0THENW$=LEFT$(W$,LEN(W$)-1):TX$=" ":GOTO980 940 IFA=20THEN900 950 IFA$=CHR$(34)THEN900 960 IFLEN(W$) >=16 THEN900 970 XP=XP+1:W$=W$+TX$ 980 (null)1,XP,7,TX$,1:IFA=20THENXP=XP-1 990 GOTO900